unit untConsultaMovimentacaoProdutos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, untConsultaPadrao, dxBarDBNav, dxBar, cxClasses, DB,
  IBCustomDataSet, ActnList, cxPropertiesStore, cxContainer, cxEdit,
  cxStyles, cxGridTableView, cxLookAndFeels, cxGridCustomPopupMenu,
  cxGridPopupMenu, ImgList, cxGraphics, ExtCtrls, cxPC, cxControls,
  cxCustomData, cxFilter, cxData, cxDataStorage, cxDBData,
  cxGridCustomTableView, cxGridDBTableView, cxGridLevel, cxGridCustomView,
  cxGrid, cxCurrencyEdit, IBQuery, cxDropDownEdit, cxCalc, cxSpinEdit,
  cxLabel, cxTextEdit, cxMaskEdit, cxLookupEdit, cxDBLookupEdit,
  cxDBLookupComboBox, dxmdaset, cxDBEdit, ACBrBase, ACBrEnterTab,
  cxIntlBase, cxintl, cxLookAndFeelPainters, dxSkinsCore, dxSkinBlack,
  dxSkinBlue, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide,
  dxSkinFoggy, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian,
  dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinPumpkin, dxSkinSeven,
  dxSkinSharp, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
  dxSkinSummer2008, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinXmas2008Blue, dxSkinscxPCPainter, dxSkinsdxBarPainter,
  cxGridChartView, cxGridDBChartView;

type
  TfrmConsultaMovimentacaoProdutos = class(TfrmConsultaPadrao)
    Panel3: TPanel;
    dtEditMES: TIBStringField;
    dtEditSALDO: TIBBCDField;
    cbProdutor: TcxDBLookupComboBox;
    cxLabel2: TcxLabel;
    cbTerceiro: TcxDBLookupComboBox;
    cxLabel5: TcxLabel;
    cbPropriedade: TcxDBLookupComboBox;
    cxLabel6: TcxLabel;
    cbOperacao: TcxDBLookupComboBox;
    cxLabel19: TcxLabel;
    cxLabel3: TcxLabel;
    cbProduto: TcxDBLookupComboBox;
    cxLabel7: TcxLabel;
    cxLabel1: TcxLabel;
    lstProdutores: TIBQuery;
    dsProdutor: TDataSource;
    dsTerceiro: TDataSource;
    lstTerceiro: TIBQuery;
    lstTerceiroCODIGO: TIntegerField;
    lstTerceiroNOME: TIBStringField;
    lstPropriedade: TIBQuery;
    lstPropriedadeCODIGO: TIntegerField;
    lstPropriedadeNOME: TIBStringField;
    dsPropriedade: TDataSource;
    lstOperacoes: TIBQuery;
    lstOperacoesCODIGO: TIntegerField;
    lstOperacoesNOME: TIBStringField;
    dsOperacoes: TDataSource;
    mtbFiltroPRODUTOR: TIntegerField;
    mtbFiltroPROPRIEDADE: TIntegerField;
    mtbFiltroOPERACAO: TIntegerField;
    mtbFiltroTERCEIRO: TIntegerField;
    mtbFiltroSALDO: TFloatField;
    mtbFiltroANO: TIntegerField;
    cxDBSpinEdit1: TcxDBSpinEdit;
    cxDBCalcEdit1: TcxDBCalcEdit;
    dtEditENTRADA: TIBBCDField;
    dtEditSAIDA: TIBBCDField;
    mtbFiltroPRODUTO: TIntegerField;
    dsProdutos: TDataSource;
    lstProdutos: TIBQuery;
    lstProdutoresCODIGO: TIntegerField;
    lstProdutoresNOME: TIBStringField;
    lstProdutosCODIGO: TIntegerField;
    lstProdutosNOME: TIBStringField;
    lstParametro: TIBQuery;
    lstParametroCODIGO: TIntegerField;
    lstParametroUSUARIO: TIntegerField;
    lstParametroDATA_MOVTO: TDateField;
    lstParametroOPERACAO: TIntegerField;
    lstParametroPRODUTOR: TIntegerField;
    lstParametroTERCEIRO: TIntegerField;
    lstParametroPROPRIEDADE: TIntegerField;
    lstParametroPRODUTO: TIntegerField;
    lstParametroANO_BASE: TIntegerField;
    Grid: TcxGrid;
    cxGridDBTableView1: TcxGridDBTableView;
    cxGridDBTableView1MES: TcxGridDBColumn;
    cxGridDBTableView1ENTRADA: TcxGridDBColumn;
    cxGridDBTableView1SAIDA: TcxGridDBColumn;
    cxGridDBTableView1SALDO: TcxGridDBColumn;
    GridDBChartView1: TcxGridDBChartView;
    GridDBChartView1Series1: TcxGridDBChartSeries;
    GridDBChartView1Series2: TcxGridDBChartSeries;
    GridDBChartView1Series3: TcxGridDBChartSeries;
    cxGridLevel1: TcxGridLevel;
    GridLevel1: TcxGridLevel;
    procedure FormShow(Sender: TObject);
    procedure ActFilterExecute(Sender: TObject);
    procedure GridEnter(Sender: TObject);
    procedure lstOperacoesBeforeOpen(DataSet: TDataSet);
    procedure mtbFiltroPRODUTORValidate(Sender: TField);
    procedure lstParametroBeforeOpen(DataSet: TDataSet);
  private
    { Private declarations }
    procedure abreconsultas;
  public
    { Public declarations }
  end;

var
  frmConsultaMovimentacaoProdutos: TfrmConsultaMovimentacaoProdutos;

implementation

uses DateUtils, untDmPrincipal;

{$R *.dfm}

procedure TfrmConsultaMovimentacaoProdutos.FormShow(Sender: TObject);
begin
  inherited;
  lstProdutores.Close;
  lstProdutores.Open;

  abreconsultas;

  cbProdutor.SetFocus;
  mtbFiltroSALDO.Value := 0;
  lstParametro.Close;
  lstParametro.Open;
  
  if (lstParametroANO_BASE.AsInteger > 0) then
    mtbFiltroANO.Value := lstParametroANO_BASE.AsInteger
  else
    mtbFiltroANO.Value := YearOf(date);
end;

procedure TfrmConsultaMovimentacaoProdutos.ActFilterExecute(Sender: TObject);
begin
  inherited;
  Grid.SetFocus;
  dtEdit.Close;
  dtEdit.ParamByName('produtor').value := mtbFiltroPRODUTOR.AsInteger;
  dtEdit.ParamByName('propriedade').value := mtbFiltroPROPRIEDADE.AsInteger;
  dtEdit.ParamByName('operacao').value := mtbFiltroOPERACAO.AsInteger;
  dtEdit.ParamByName('terceiro').value := mtbFiltroTERCEIRO.AsInteger;
  dtEdit.ParamByName('produto').value := mtbFiltroPRODUTO.AsInteger;
  dtEdit.ParamByName('ano_base').value := mtbFiltroANO.AsInteger;
  dtEdit.ParamByName('saldo').value := mtbFiltroSALDO.AsFloat;
  dtEdit.Open;

end;

procedure TfrmConsultaMovimentacaoProdutos.GridEnter(Sender: TObject);
begin
  inherited;
  ActFilter.Execute;
end;

procedure TfrmConsultaMovimentacaoProdutos.lstOperacoesBeforeOpen(
  DataSet: TDataSet);
begin
  inherited;
 TIBQuery(DataSet).ParamByName('codigo').value := mtbFiltroPRODUTOR.AsInteger;
 TIBQuery(DataSet).ParamByName('ano').value := mtbFiltroANO.AsInteger;
end;

procedure TfrmConsultaMovimentacaoProdutos.abreconsultas;
begin
  lstTerceiro.Close;
  lstTerceiro.Open;

  lstProdutos.Close;
  lstProdutos.Open;

  lstPropriedade.Close;
  lstPropriedade.Open;


  lstOperacoes.Close;
  lstOperacoes.Open;
end;

procedure TfrmConsultaMovimentacaoProdutos.mtbFiltroPRODUTORValidate(
  Sender: TField);
begin
  inherited;
  abreconsultas;
end;

procedure TfrmConsultaMovimentacaoProdutos.lstParametroBeforeOpen(
  DataSet: TDataSet);
begin
  inherited;
  lstParametro.ParamByName('usuario').value := dmPrincipal.usuario_logado_codigo;
end;

end.
